﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace ch04
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            //定义变量保存要操作的文件的路径及名称
            string path = @"C:\Users\Administrator\Desktop\1.txt";

            //创建一个文件流对象
            FileStream fs = new FileStream(path,FileMode.Open);

            //定义字节数组保存读取的内容
            byte[] b = new byte[5];

            //调用fs文件流对象的Read方法读取文件
            //Read方法返回读取了多少个字节
            int n = fs.Read(b,0,b.Length);

            MessageBox.Show("读取了"+n+"个字节！");

            //将字节数组转为字符串
            label1.Text = Encoding.UTF8.GetString(b);

            //释放资源
            fs.Close();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //定义变量保存要操作的文件的路径及名称
            //string path = @"C:\Users\Administrator\Desktop\1.txt";

            //让用户选择一个文件，读取其中文本内容
            OpenFileDialog ofd = new OpenFileDialog();

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //创建读取器对象传入文件的路径及名称
                StreamReader sr = new StreamReader(ofd.FileName, Encoding.Default);
                //ReadToEnd方法从头读到尾
                label1.Text = sr.ReadToEnd();
                //释放资源
                sr.Close();

                /*
                //创建一个文件流对象
                FileStream fs = new FileStream(ofd.FileName, FileMode.Open);

                //创建读取器(输入流)对象
                StreamReader sr = new StreamReader(fs,Encoding.Default);

                //使用读写器以字符的形式来读取文件中的内容
                //ReadLine方法一次读取一行
                //label1.Text = sr.ReadLine();

                //ReadToEnd方法从头读到尾
                label1.Text = sr.ReadToEnd();

                //释放资源
                //先释放输入流
                sr.Close();

                //再释放文件流
                fs.Close();
                */
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            //获取文本框的内容
            string content = textBox1.Text;

            //创建写入器(输出流)对象传入文件的路径及名称
            //第二个参数：true代表追加，false代表不追加，就是覆盖
            StreamWriter sw = new StreamWriter(@"C:\Users\Administrator\Desktop\1.txt",true, Encoding.Default);
            //使用写入器将内容写入到指定文件中
            sw.WriteLine(content);
            //释放资源
            sw.Close();

            /*
            //创建一个文件流对象
            FileStream fs = new FileStream(@"C:\Users\Administrator\Desktop\1.txt",FileMode.Append);

            //创建写入器(输出流)对象
            StreamWriter sw = new StreamWriter(fs,Encoding.Default);

            //使用写入器将内容写入到指定文件中
            //sw.Write("");
            sw.WriteLine(content);

            //释放资源
            sw.Close();
            fs.Close();
            */

        }
    }
}
